1. Field of the Invention
The present invention relates to allowing a user to choose between either local or remote processing of a data file in a client and server system, such that the service or operation provided may be optimized.
2. Description of the Related Art
Computers may be conveniently used for the widest range of applications, e.g. ranging from simple editing of text documents to complex distributed applications involving a large number of data processing units and involving the transfer of data between the data processing units.
With the growing number of data processing units having access to computer networks, such as to local area networks or worldwide networks (i.e., company wide intranets or the Internet), a growing number of applications are offered which involve a plurality of data processing units. Such applications may be for example, found in the field of home banking, office applications, remote e-mail applications, supercomputing applications and the like.
Conventional applications include where one data processing unit serves as a client and communicates with another data processing unit acting as a server. In such a scenario, the client may request the execution of an application at the server and may receive a processing result from the server via a network or communication link connecting the client and server.
Further, systems are known where a plurality of clients may connect to a portal for executing applications. A portal may be a large site in a network including a plurality of servers that provide a variety of services including, for example, office applications, searching functions, news functions, e-mail applications, discussion groups, online shopping and links to other sites in a network. A portal may thus be a general purpose site offering the capability to perform applications on behalf of a client or assisting a client in executing the application.
Generally, in a client and server or portal scenario the server may be a large computing device which has the resources to store and execute application programs which are used in providing service to a client. Since the applications and sufficient computing power is generally available at a server, the client may be a data processing unit with lesser computing resources functioning as an interface to receive user commands required to execute the desired application program in providing the requested service, i.e., to transmit commands from the client to the server, and further to receive and, for example, display computation results from the server.
For example, in case a user at a client wishes to access a document, e.g., a web-page available at the server or another location, the server retrieves the requested web-page and prepares, i.e. renders, the web-page for display at the client. Subsequently, display frames for local visualization at the client are transmitted from the server to the client and the user can view the desired web-page.
In case the client, for example, wishes to scroll through the document, a corresponding input command is received at the client and transmitted via the network to the server which prepares a corresponding display content for transfer to the client in order to enable the client to locally visualize the changed display content. Similarly, in case the user wishes to edit the document, respective commands could be transmitted from the client to the server and accordingly be processed at the server. Changed display contents are then transmitted to the client for local visualization.
However, it is possible that not only the server has the necessary resources to provide a desired service—a client may already have the required resources for providing the service, such as rendering operations or editing a data file. Corresponding application programs may thus be available at both the client side and the server side for performing a desired operation, i.e., providing a desired service.
Usually, in a case where an application program is available at a server and at a client for providing a specific operation or service, upon receiving a corresponding instruction at the client, the client proceeds to activate the application program available at the client unit in providing the desired operation or service. For example, in case an application for providing an editing service is available at both the client and the server, upon receiving an editing command, the client will generally select the locally available application programs for editing a file.
However, in this case a data file may need to be transmitted to the client which, for a large data file, may incur increased processing time. Specifically, it may be particularly inconvenient to provide a service locally at the client in case a data file to be handled is maintained at the server, as in this case, the data file would be transmitted to the client and back to the server after a service session. If the client is connected to the server via a low bandwidth connection, latency may be unacceptable. A similar problem may occur if the client has little processing resources, and the provision of the service or operation requires high processing capabilities, for example, which are available at the server. In this case delays may also be unacceptable.
On the other hand, it may be advantageous to provide a service or operation on a data file locally at a client, for example, in case a document is edited, as in this case a user input should be displayed at the client without any latency, if possible. However, in case the data file is handled at the server, a user input would be transmitted to the server, then a corresponding change between content would be prepared and transferred back to the client for local visualization, possibly resulting in high latency.
It is therefore, desirable to provide an improved method and system to allow a user to choose between either local or remote processing of a data file in a client and server system.